Network applications are commonly distributed utilizing two different approaches, a client application and a web application. For example, a service or product provider (hereinafter, provider) operating over a network (e.g., the Internet) may utilize a client application running on a client device and a web server serving web pages to a client web application to exchange various types of data, such as transaction data or user configuration data.
In the first approach, a client application is created, or hard coded, in a programming language such as C++ and then offered to users as a download via a network, or distributed by another means such as compact disk (CD), etc. Once downloaded and/or installed, the user may interact with the client application in communication with the provider's server to exchange data. As with most computer applications for users, the client application is centered on a user interface that provides functionality and displays data generated and communicated by the provider as well as data generated by the user, which may be uploaded to the provider's server.
In order to provide a consistent user experience for the user of the client application and the user of a web application, the provider has to maintain and release new versions of each application whenever a change occurs. Consequently, a provider may incur significant costs in time and resources to ensure a new client application is generated each time a change is made to the web application and vice versa.